﻿Imports FirebirdSql.Data
Imports FirebirdSql.Data.FirebirdClient
Imports System.Data
Public Class _Trabalhador
    Inherits _DataBase

    Private curso As New _cursoTrabalhador
    Private exp As New _experienciaProfissional

    Private _idTrabalhador As Integer
    Private _nmCompleto As String
    Private _idEscolaridade As Integer
    Private _edCompleto As String
    Private _edBairro As String
    Private _nuCPF As String
    Private _nuRG As String
    Private _dtNascimento As Date
    Private _emEmail As String
    Private _nuTelefone1 As String
    Private _nuTelefone2 As String
    Private _ctCNH As String
    Private _stPNE As String
    Private _dsPNE As String
    Private _dtCadastro As Date
    Private _pathImgTrabalhadpr As String
    Private _sxSexo As String



    Public Property idTrabalhador() As Integer
        Get
            Return _idTrabalhador
        End Get
        Set(ByVal value As Integer)
            _idTrabalhador = value
        End Set
    End Property

    Public Property nmCompleto() As String
        Get
            Return _nmCompleto
        End Get
        Set(ByVal value As String)
            _nmCompleto = value
        End Set
    End Property

    Public Property idEscolaridade() As Integer
        Get
            Return _idEscolaridade
        End Get
        Set(ByVal value As Integer)
            _idEscolaridade = value
        End Set
    End Property

    Public Property edCompleto() As String
        Get
            Return _edCompleto
        End Get
        Set(ByVal value As String)
            _edCompleto = value
        End Set
    End Property
    Public Property edBairro() As String
        Get
            Return _edBairro
        End Get
        Set(ByVal value As String)
            _edBairro = value
        End Set
    End Property
    Public Property nuCPF() As String
        Get
            Return _nuCPF
        End Get
        Set(ByVal value As String)
            _nuCPF = value
        End Set
    End Property

    Public Property nuRG() As String
        Get
            Return _nuRG
        End Get
        Set(ByVal value As String)
            _nuRG = value
        End Set
    End Property

    Public Property dtNascimento() As Date
        Get
            Return _dtNascimento
        End Get
        Set(ByVal value As Date)
            _dtNascimento = value
        End Set
    End Property

    Public Property emEmail() As String
        Get
            Return _emEmail
        End Get
        Set(ByVal value As String)
            _emEmail = value
        End Set
    End Property

    Public Property nuTelefone1() As String
        Get
            Return _nuTelefone1
        End Get
        Set(ByVal value As String)
            _nuTelefone1 = value
        End Set
    End Property

    Public Property nuTelefone2() As String
        Get
            Return _nuTelefone2
        End Get
        Set(ByVal value As String)
            _nuTelefone2 = value
        End Set
    End Property

    Public Property ctCNH() As String
        Get
            Return _ctCNH
        End Get
        Set(ByVal value As String)
            _ctCNH = value
        End Set
    End Property

    Public Property stPNE() As Integer
        Get
            Return _stPNE
        End Get
        Set(ByVal value As Integer)
            _stPNE = value
        End Set
    End Property

    Public Property dsPNE() As String
        Get
            Return _dsPNE
        End Get
        Set(ByVal value As String)
            _dsPNE = value
        End Set
    End Property

    Public Property dtCadastro() As Date
        Get
            Return _dtCadastro
        End Get
        Set(ByVal value As Date)
            _dtCadastro = value
        End Set
    End Property

    Public Property pathImgTrabalhador() As String
        Get
            Return _pathImgTrabalhadpr
        End Get
        Set(ByVal value As String)
            _pathImgTrabalhadpr = value
        End Set
    End Property
    Public Property sxSexo() As String
        Get
            Return _sxSexo
        End Get
        Set(ByVal value As String)
            _sxSexo = value
        End Set
    End Property

    Public Function consultaTrabalhadorPorCPF(ByVal pNuCPF As String) As Boolean
        nuCPF = pNuCPF
        conectaDb()
        dr = retornaDataReader(montaParametrosSQL("SP_TRABALHADOR_CONSULTA", "CPF"))
        With dr
            If .Read Then
                Me.idTrabalhador = .Item("O_ID_TRABALHADOR")
                Me.nmCompleto = .Item("O_NM_COMPLETO")
                Me.idEscolaridade = .Item("O_ID_ESCOLARIDADE")
                Me.edCompleto = .Item("O_ED_COMPLETO")
                Me.edBairro = .Item("o_ED_BAIRRO").ToString
                Me.nuCPF = .Item("O_NU_CPF")
                Me.nuRG = .Item("O_NU_RG")
                Me.dtNascimento = .Item("O_DT_NASC")
                Me.emEmail = .Item("O_EM_EMAIL")
                Me.nuTelefone1 = .Item("O_NU_TELEFONE1")
                Me.nuTelefone2 = .Item("O_NU_TELEFONE2")
                Me.ctCNH = .Item("O_CT_CNH")
                Me.stPNE = .Item("O_ST_PNE")
                Me.dsPNE = .Item("O_DS_PNE")
                Me.dtCadastro = .Item("O_DT_CADASTRO")
                Try
                    Me.pathImgTrabalhador = My.Settings.Servidor_Imagens & .Item("O_ed_pathimgtrabalhador")
                Catch ex As Exception
                End Try
                Try
                    Me.sxSexo = .Item("O_sx_sexo")
                Catch ex As Exception
                End Try
                desconectaDb()
                Return True
            Else
                desconectaDb()
                Return False
            End If
        End With

    End Function

    Public Function ConsultaTrabalhador() As DataSet
      
        Return retornaDataSet(montaParametrosSQL("SP_TRABALHADOR_CONSULTA", "RESUMIDO"))
    End Function

    Public Function verificaSeNomeTrabalhadorExiste(ByVal pNmTrabalhador As String) As Boolean
        nmCompleto = pNmTrabalhador
        conectaDb()
        dr = retornaDataReader(montaParametrosSQL("SP_TRABALHADOR_CONSULTA", "NOME"))
        verificaSeNomeTrabalhadorExiste = IIf(dr.Read, True, False)
        desconectaDb()

    End Function

    Public Sub geraRelatorios(ByVal pIdTrabalhador As Integer)

        geraXmlTrabalhadorCabecario(pIdTrabalhador)
        geraXmlTrabalhadorCursos(pIdTrabalhador)
        geraXmlTrabalhadorExperiencia(pIdTrabalhador)

    End Sub
    Private Sub geraXmlTrabalhadorCabecario(ByVal pIdTrabalhador As Integer)

        idTrabalhador = pIdTrabalhador
        Dim s() As String = {"O_DT_INICIO", "O_DT_FIM"}  '<-- Campos a serem filtrados
        Dim f As New FiltroDateTimeXml("C:\SATE\TEMP\CTrabCabeca", s)
        retornaDataSet(montaParametrosSQL("SP_TRABALHADOR_CONSULTA", "ID")).WriteXml(f, XmlWriteMode.WriteSchema) '<-- DataSet
        f.Close() '<-- Libera referência ao arquivo

    End Sub

    Private Sub geraXmlTrabalhadorCursos(ByVal pIdTrabalhador As Integer)

        Dim s() As String = {"O_DT_INICIO", "O_DT_FIM"}  '<-- Campos a serem filtrados
        Dim f As New FiltroDateTimeXml("C:\SATE\TEMP\CTrabCursos", s)
        curso.consultaCursoTrabalhador(pIdTrabalhador).WriteXml(f, XmlWriteMode.WriteSchema) '<-- DataSet
        f.Close() '<-- Libera referência ao arquivo

    End Sub
    Private Sub geraXmlTrabalhadorExperiencia(ByVal pIdTrabalhador As Integer)


        Dim s() As String = {"O_DT_INICIO", "O_DT_FIM"}  '<-- Campos a serem filtrados
        Dim f As New FiltroDateTimeXml("C:\SATE\TEMP\CTrabExpProf", s)
        exp.consultaExperienciaPorTrabalhador(pIdTrabalhador).WriteXml(f, XmlWriteMode.WriteSchema) '<-- DataSet
        f.Close() '<-- Libera referência ao arquivo

    End Sub

    Public Function ConsultaTrabalhadorPorId(ByVal pidTrabalhador As Integer) As Integer

        idTrabalhador = pidTrabalhador
        conectaDb()
        dr = retornaDataReader(montaParametrosSQL("SP_TRABALHADOR_CONSULTA", "ID"))
        With dr
            If .Read Then
                Me.idTrabalhador = pidTrabalhador
                Me.nmCompleto = .Item("O_NM_COMPLETO")
                Me.idEscolaridade = .Item("O_ID_ESCOLARIDADE")
                Me.edCompleto = .Item("O_ED_COMPLETO")
                Me.edBairro = .Item("o_ED_BAIRRO").ToString
                Me.nuCPF = .Item("O_NU_CPF")
                Me.nuRG = .Item("O_NU_RG")
                Me.dtNascimento = .Item("O_DT_NASC")
                Me.emEmail = .Item("O_EM_EMAIL")
                Me.nuTelefone1 = .Item("O_NU_TELEFONE1")
                Me.nuTelefone2 = .Item("O_NU_TELEFONE2")
                Me.ctCNH = .Item("O_CT_CNH")
                Me.stPNE = .Item("O_ST_PNE")
                Me.dsPNE = .Item("O_DS_PNE")
                Me.dtCadastro = .Item("O_DT_CADASTRO")
                Try
                    Me.pathImgTrabalhador = My.Settings.Servidor_Imagens & .Item("O_ed_pathimgtrabalhador")
                Catch ex As Exception

                End Try
                Try
                    Me.sxSexo = .Item("O_sx_sexo")
                Catch ex As Exception

                End Try
            End If
        End With
        desconectaDb()
    End Function

    Public Function ConsultaIdUltimoTrab() As Integer
        conectaDb()
        dr = retornaDataReader(montaParametrosSQL("SP_TRABALHADOR_CONSULTA", "ULTIMO"))
        With dr
            If .Read Then
                ConsultaIdUltimoTrab = .Item("O_ID_PATRIMONIO")
            End If
        End With
        desconectaDb()

    End Function

    Public Function insereTrabalhador() As Integer

        conectaDb()
        insereTrabalhador = execSQL(montaParametrosSQL("SP_TRABALHADOR_CMD", "INSERIR"))
        desconectaDb()

    End Function
    Public Sub alteraTrabalhador()
        conectaDb()
        execSQLSemRetorno(montaParametrosSQL("SP_TRABALHADOR_CMD", "ALTERAR"))
        desconectaDb()
    End Sub

    Public Sub salvaImgTrabalhador(ByVal pNmImagem As String, ByVal pIdTrabalhador As Integer)
        pathImgTrabalhador = pNmImagem
        idTrabalhador = pIdTrabalhador
        conectaDb()
        execSQLSemRetorno(montaParametrosSQL("SP_TRABALHADOR_CMD", "SALVAIMG"))
        desconectaDb()

    End Sub

    Private Function montaParametrosSQL(ByVal pNomeSP As String, ByVal pModo As String) As FbCommand

        With cmd

            .CommandText = pNomeSP
            With .Parameters
                .Clear()
                .Add("MODO", FbDbType.VarChar, 10).Value = pModo
                .Add("I_ID_TRABALHADOR", FbDbType.Integer).Value = idTrabalhador
                .Add("I_ID_ESCOLARIDADE", FbDbType.VarChar, 80).Value = idEscolaridade
                .Add("I_NM_COMPLETO", FbDbType.VarChar, 80).Value = nmCompleto
                .Add("I_ED_COMPLETO", FbDbType.VarChar, 80).Value = edCompleto
                .Add("I_ED_BAIRRO", FbDbType.VarChar, 80).Value = edBairro
                .Add("I_NU_CPF", FbDbType.VarChar, 11).Value = nuCPF
                .Add("I_NU_RG", FbDbType.VarChar, 30).Value = nuRG
                .Add("I_DT_NASC", FbDbType.Date).Value = dtNascimento
                .Add("I_NU_TELEFONE1", FbDbType.VarChar, 15).Value = nuTelefone1
                .Add("I_NU_TELEFONE2", FbDbType.VarChar, 15).Value = nuTelefone2
                .Add("I_EM_EMAIL", FbDbType.VarChar, 80).Value = emEmail
                .Add("I_CT_CNH", FbDbType.Char, 2).Value = ctCNH
                .Add("I_ST_PNE", FbDbType.Integer).Value = stPNE
                .Add("I_DS_PNE", FbDbType.VarChar, 80).Value = dsPNE
                .Add("I_DT_CADASTRO", FbDbType.Date).Value = dtCadastro
                .Add("I_ED_PATHIMGTRABALHADOR", FbDbType.VarChar, 80).Value = pathImgTrabalhador
                .Add("I_SX_SEXO", FbDbType.Char, 1).Value = sxSexo
            End With
        End With
        Return cmd
    End Function

End Class
